package com.flyme.module.file.provider.service;


import com.flyme.common.core.model.ResultBody;
import com.flyme.common.core.model.query.PagerInfo;
import com.flyme.common.core.model.query.PqGrid;
import com.flyme.core.base.supper.entity.EntityMap;
import com.flyme.core.base.supper.service.IBaseService;
import com.flyme.module.file.client.entity.SysCourse;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author: flyme
 * @date: 2018/3/7 15:28
 * @desc: 课程服务接口
 */
 public  interface SysCourseService extends IBaseService<SysCourse> {
    /**
     * 添加课程
     *
     * @param course
     * @return
     */
    Boolean addCourse(SysCourse course);

    /**
     * 更新课程
     *
     * @param course 课程
     * @return
     */
    Boolean updateCourse(SysCourse course);


    /**
     * 删除课程
     * @param ids
     * @return
     */
    ResultBody delByIds(String[] ids);

    /**
     * 首页展示的课程
     */
     List<EntityMap> selectInderCourse(PagerInfo pagerInfo, String indextagId);

    /**
     * 搜索课程
     */
     List<EntityMap> searchCourse(BigDecimal iosRatio, String keyWord, PagerInfo pagerInfo);

    /**
     * PC端搜索课程
     */
     PqGrid searchCourseWeb(BigDecimal iosRatio,String keyWord, PagerInfo pagerInfo);

    /**
     * 根据讲师查询对应的所有二级分类
     */
     List<EntityMap> selectByLecturer(BigDecimal iosRatio,String lecturerId, PagerInfo pagerInfo);

    /**
     * 网站根据讲师查询推荐课程
     */
     List<EntityMap> selectLecturerRecommends(BigDecimal iosRatio,Long lecturerId, PagerInfo pagerInfo);

    /**
     * 小程序搜索加分页
     * @param iosRatio
     * @param keyWord
     * @param pagerInfo
     * @return
     */
    PqGrid searchpageCourse(BigDecimal iosRatio,String keyWord, PagerInfo pagerInfo);
    /**
     * 网站查询推荐课程列表
     */
     PqGrid selectCourseRecommendsWeb(BigDecimal iosRatio,PagerInfo pagerInfo, String sort);

     /**
     * 网站查询所有课程列表
     */
     PqGrid selectCourseAllWeb(BigDecimal iosRatio,PagerInfo pagerInfo, String sort);

    /**
     * 网站查询一级课程列表
     */
     PqGrid selectCourseByTypeFirstWeb(PagerInfo pagerInfo, List<Object> ids, String sort);

    /**
     * 网站查询课程列表
     */
     PqGrid selectCourseByTypeWeb(PagerInfo pagerInfo, String coursetypeId, String sort);

    /**
     * 网站首页展示的课程
     */
     List<EntityMap> selectInderCourseWeb(Integer num);

    /**
     * 网站根据讲师查询对应的所有课程
     */
     PqGrid selectByLecturerWeb(Long lecturerId, String sortOrder, PagerInfo pagerInfo);

    /**
     * 根据模块统计课程数量
     */
     Integer countByTag(Long tagId);

}
